home *** CD-ROM | disk | FTP | other *** search
-
-
-
- :::::::::::::::::::::::::::::::::::::::
- :::::: NEW RELEASE! VERSION 4.00 ::::::
- :::::::::::::::::::::::::::::::::::::::
-
-
-
-
-
-
-
- ==================================================
- I I
- I I
- I The FreeSoft Company Presents: I
- I I
- I ---> The Ultra Utilities <--- I
- I "The Wizard's Apprentice" I
- I I
- I User's Manual And Guide To Operation I
- I I
- ==================================================
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Copyright (C), 1983 by The FreeSoft Company. All rights reserved
- Version 4.00, First Release: January, 1984
-
- This manual and the accompanying programs U-ZAP.EXE, U-FORMAT.EXE and
- U-FILE.EXE may be copied and shared freely as long as certain
- duplication rules are adhered to. Please see Appendix A of this
- manual for the FreeSoft duplication policy. Anyone found duplicating
- any part of this manual or the programs mentioned above not according
- to the policies in Appendix A of this manual will suffer from guilt
- for eternity. Think about it...
- Ultra-Ultility Warranty
-
- The programs U-ZAP.EXE, U-FORMAT.EXE and U-FILE.EXE and this manual
- are provided on an "AS IS" basis without warranty of any kind,
- expressed or implied, including but not limited to the implied
- warranties of merchantability and fitness for a particular purpose.
- The entire risk as to quality and performance of these programs and
- this manual rests solely with the user. Should any part of these
- programs or this manual prove defective, the user will assume the
- entire cost of all necessary repair, servicing, and correction. In
- no event will The FreeSoft Company be liable to you for any damages,
- including any lost profits, lost savings, or other incidental or
- consequential damages arising out of the use or inability to use
- these programs or this manual, even if The FreeSoft Company has been
- advised of the possibility of such damages. This warranty gives you
- specific legal rights, and you may have other rights which may vary
- from state to state. Some states do not allow the exclusion of
- implied or consequential damages so parts of the above may not apply
- to you. By operating any of the above programs or using any part of
- this manual, you acknowledge that you have read this agreement,
- understand it, and agree to be bound by its terms and conditions.
- You further agree that it is the complete and exclusive statement of
- the agreement between us, which supercedes any proposal or prior
- agreement, oral or written, and any other communications between us.
-
- If you have registered, feel free to write us with any questions you
- might have concerning our products. If there seems to be a need for
- it, we may open up a telephone hotline or bulletin board for fast
- service.
-
- WE WILL OFFER ABSOLUTELY NO SUPPORT TO UNREGISTERED USERS. IF YOU DO
- NOT CHOOSE TO REGISTER, YOU ARE COMPLETELY ON YOUR OWN! ANY LETTERS
- OR QUESTIONS FROM UNREGISTERED USERS WILL BE IGNORED. SO THERE!
- Table Of Contents
-
- Introduction.................................................. 1
-
- Section I: Ultra-Zap
- Display/Modify Disk Sectors................................... 2
- Display/Modify File Sectors................................... 4
- Copy Disk Sectors............................................. 5
- Fill Disk Sectors............................................. 5
- Search For Bytes In Disk Sectors.............................. 5
- Search For Bytes In File Sectors.............................. 6
- Modify Sector Fill Byte....................................... 6
- Modify Display Radix.......................................... 6
- Interrogate Disk Sectors...................................... 7
- Toggle Menu Alert Tone........................................ 8
- Display/Modify Disk Parameters................................ 8
- How To Display/Modify Non-Standard Sectors.................... 9
-
- Section II: Ultra-Format
- Format A Standard Track.......................................10
- Re-format A Standard Track Without Erasing Old Data...........10
- Format A Non-standard (Copy-Protected) Track..................10
- Display/Modify Disk Parameter Table...........................11
- Modify Display Radix..........................................11
-
- Section III: Ultra-File
- Display File's Directory Information..........................12
- Assign Or Remove System Status................................12
- Assign Or Remove Hidden Status................................12
- Display List Of Sectors Allocated To File.....................12
- Build A File From Scratch.....................................13
- Attempt To Restore An Erased File.............................13
- Produce A Map Of Diskette.....................................13
- Selectively Purge Files.......................................14
-
- Section IV: Appendices
- Appendix A: The FreeSoft Duplication Policy...................15
- Registration Form.............................................18
- Invoice.......................................................19
- Appendix B: A Brief Discussion Of Diskette Formats............20
- Appendix C: Version changes and additions.....................21
- (1) Introduction
- ------------
-
- The Ultra-Utilities are a powerful collection of programs that will
- allow you complete access to the power of your IBM-PC's disk drive
- controller circuitry and PC-DOS disk operating system. With this
- power also comes the abilty to do terrible damage to your diskettes
- if you make a mistake at the wrong time. To avoid this:
-
- A) Make a copy of the Ultra-Utilities and keep the originals in a
- safe place. When using the copies, remove the diskette
- containing the Ultra-Utilities after the desired program has
- loaded. It is not necessary for this diskette to remain in the
- disk drive after the program has begun execution.
-
- B) When working on other diskettes, ALWAYS WORK ON A COPY! The
- time it takes to backup a diskette is well worth it effort. If
- you are working on a diskette that you are unable to yet make a
- copy of, at least place a write-protect tab on it and work
- slowly and cautiously.
-
- To use these programs properly you will need:
-
- 1) IBM-PC with at least 64K RAM, one single or double-sided disk
- drive, and an 80-column display. Because of the wide variety
- of IBM-PC configurations and the varying levels of
- "compatibility" with PC clones, we cannot and do not support
- questions concerning support of other equipment configurations.
- Additional memory may be needed if you boot under DOS 2.00.
-
- 2) DOS 1.10 or 2.00: Again, if you try to use other versions of
- PC-DOS, you are on your own. These programs have been tested
- only on PC-DOS versions 1.10 and 2.00.
-
- You do not have to be a "hacker" or be able to multiply four digit
- hexadecimal numbers in your head to be able to use the
- Ultra-Utilities. If you are more technically inclined, you'll no
- doubt find many uses for the powerful features of these programs. If
- you're not so technically inclined, you'll probably use these
- programs for "snooping" and educational purposes, and will first want
- to read the chapter on Modifying The Display Radix. When first
- executed, the Ultra-Zap and Ultra-Format programs display all numbers
- in hexadecimal format (base 16). If you are not comfortable using
- hex values, use that function to change all printed values to decimal
- (base 10).
-
- Features of the Ultra-Utilities
- -------------------------------
- 1) The Ultra-Utilties use a special input procedure that allows you
- to only enter in characters appropriate to the question being
- asked. In most cases, a number of small boxes will appear next to
- a question. These boxes tell you that the program is waiting for
- your response, as well as the maximum number of characters you may
- type to answer the question. If no boxes are displayed, a single
- key press is all that's needed, and it is not necessary to press
- the <ENTER> key afterwards.
-
- 2) Although the Ultra-Utilities will display numeric values in the
- format specified by the display radix, you can input numbers using
- any of three allowable radices without regard for the display
- radix. Decimal numbers should be entered normally, without any
- (2)
- prefix. Octal numbers should be entered using the prefix &O, and
- hexadecimal numbers should be entered using the prefix &H. This
- is in keeping with the standard numeric entry procedures of IBM
- BASIC. Example: the decimal number 17 could be entered as:
- 17 (decimal)
- &H11 (hexadecimal)
- &O21 (octal)
-
- 3) If you have a lineprinter installed and selected, you can obtain
- a hardcopy of the screen at any point by pressing the "PrtSc" key
- while holding down the <SHIFT> key. This is also in keeping with
- BASIC operation.
-
- 4) The Ultra-Utilities are completely menu-driven. This means you'll
- never have to guess which cryptic command the computer is waiting
- for: all of your available options are displayed on the screen.
- Although some folks prefer non-menu-driven programs, we feel it is
- a necessary deterrent to possibly catastrophic mistakes made by
- the wrong guess with these programs.
-
- 5) Ultra-Zap will allow you to display and modify sectors of any
- length or name (such as those used in copy-protected software).
- Although this is by no means meant to be a "pirate" program, it
- is of great educational use for the novice "zapper". It can be
- used in conjunction with Ultra-Format to create your own copy-
- protected diskettes.
-
- 6) IN MOST CASES, answering a prompt with the single letter "Q"
- followed by the <ENTER> key will CANCEL THE CURRENT FUNCTION and
- RETURN YOU BACK to the main menu.
-
- GET READY TO "ZAP" AWAY YOUR TROUBLES!
- --------------------------------------
- Hopefully, you have restrained you anxiousness to get started with
- the Ultra-Utilities and have taken at least a few moments to scan
- this manual. We hope that you have fun with these programs and that
- they earn a permanent home in your software library. Don't forget to
- look over the duplication policy in Appendix A of this manual. It
- explains how the Ultra-Utilities can even earn you a few extra bucks
- just for spreading it around.
-
- Whenever you are finished with an Ultra-Utility program, always exit
- by choosing the Q>uit function from the main menu. The
- Ultra-Utilities change some important tables in memory that DOS
- expects to be present and correct, and the "Q" function restores them
- to their original values.
-
- One last caveat... this manual is by no means meant to be a tutorial
- on the diskette storage techniques of the IBM-PC and PC-DOS. We
- recommend for further study the PC-DOS manual, the IBM Technical
- Reference manual, and Peter Norton's "Inside The IBM-PC" published by
- Robert J. Brady.
-
- Display/Modify Disk Sectors
- ---------------------------
-
- This function, along with the Display/Modify File Sectors function is
- the real meat of the Ultra-Zap program. It gives you the ability to
- "snoop" around your diskettes, modify bytes or characters, and
- (3)
- encrypt or decode encrypted sector data.
-
- When you select this function, you'll first be prompted for the side,
- drive, track and sector number of the first sector you wish to look
- at. Remember, if you only have a single-sided disk drive, you will
- always specify side 0. If you are unclear what to enter, take a
- moment to peruse Appendix B of this manual.
-
- Once you have entered the above info, you will be instructed to mount
- the diskette on the appropriate drive and press any key. Once you
- have done so, the disk drive should come to life and you will enter
- what we call the "search mode".
-
- The search mode displays a straight dump of the ASCII characters in a
- sector, allowing you to find the information you're looking for in a
- hurry. Only those characters with ASCII codes between 32 and 127
- (decimal) will be displayed. The rest will be displayed as periods.
-
- There are several command keys active in the search mode:
- UP ARROW - increments the track by one and displays that sector.
- DOWN ARROW - decrements the track by one and displays that sector.
- RIGHT ARROW - increments the sector by one and displays that sector.
- LEFT ARROW - decrements the sector by one and displays that sector.
- "5" KEY ON NUMERIC KEYPAD - switches from Side 0 to Side 1 and vice-
- versa (if you have double-sided drives) and displays that sector.
- "M" key - enters "modify" mode.
- "Q" key - returns to Ultra-Zap main menu.
-
- In the "modify mode" the sector information will be displayed a bit
- differently. Select a random sector and let's go through the display
- together. The top line reiterates the current side, drive, track,
- and sector number of the sector you are working on, as well as the
- current display radix. The second line just identifies what is in
- the columns below. The third line is a template for the "ones" digit
- of the offset address- we'll come back to this in a moment. The
- fourth line starts with the actual sector data. The leftmost column
- of these rows show the number of bytes offset into the sector. Then
- comes the sector data in numeric form. The rightmost column contains
- the ASCII equivalent of the numeric data. If you are using
- hexadecimal for the display radix, there will be 16 rows of 16 bytes
- each. Decimal uses 20 rows X 10 bytes, and octal uses 16 rows X
- 8 bytes. If you wanted to find the fifth byte in a sector, you
- would go to the row marked with the offset address 0000 and scan
- across under the template in line three of the display marked
- "5". It's really pretty easy to find an individual byte in a snap
- once you get used to this "offset address/template column"
- arrangement.
-
- The bottom of the screen tells you your available choices, as well as
- the current modify mode for byte replacement (either "NUM" for entry
- of numeric replacement bytes, or "ASC" for the direct entry of ASCII
- replacement characters from the keyboard). You can toggle back and
- forth between ASC and NUM modes by choosing the "C" choice. The "Q"
- choice returns you to the search mode. The "I" and "D" choices allow
- you to add or subtract a number from each of the bytes in the sector
- for either encrypting or decoding encrypted sector data. The "M"
- choice takes you into what we call "replacement mode". The other two
- choices are "N" and "P". You will notice that all of the bytes in a
- standard 512-byte disk sector aren't displayed all at once in the
- (4)
- display screen. What we did is divide the sector into "pages" of
- data. Use the "N" key to look at the next higher display "page" of
- sector data. Use the "P" key to look at the next lower display page
- of data. Depending on the display radix and sector size, each sector
- may actually be displayed as several pages.
-
- If you wish to modify the bytes in a sector, you should first choose
- the modify mode you wish to use, and the "N" and "P" choices to
- display the "page" that contains the bytes you wish to modify. Once
- you have done so, select the "M" option to enter the "replacement
- mode". In the replacement mode, an inverse cursor will appear in the
- first byte of that page. Use the arrow keys to position the cursor
- on the byte you wish to modify and then press the spacebar. If you
- are in NUM mode, you will be prompted to enter in the new value. For
- each byte you wish to modify in the NUM mode, you will have to press
- the spacebar as above. However, in the ASC modify mode, you just
- press the spacebar once. You can then type in characters from the
- keyboard continuously. When you are finished modifying bytes in
- either mode, just press the <ENTER> key. Note that in the ASC mode
- you can enter in any ASCII character that appears on the keyboard
- except the <ENTER> key. If you wish to enter in a character that
- does not appear on the keyboard, just hold down the ALT key and type
- in the three-digit ASCII code of the character on the numeric keypad,
- just as you would in BASIC.
-
- One more note about the "replacement mode": any ASCII characters that
- are not between codes 32 and 127 are displayed as dots. This is
- because some codes will cause your printer to do weird things if you
- try to get a screendump using the <SHIFT>-PrtSc combination. If you
- wish to look at the actual character for non-alphanumeric characters,
- just move the cursor over the byte in the replacement mode. The dot
- will be replaced with the actual character in the ASCII equivalent
- column.
-
- After you have pressed the <ENTER> key to end replacement, you will
- be asked if you wish to update the disk sector with your replacements
- or just cancel all changes. Up to now, nothing on the diskette has
- actually been changed. Instead, any changes you made were done on a
- copy of the disk sector in memory. If you cancel, you will be
- immediately returned to the main menu with no changes recorded. If
- you select the update choice, your changes will be recorded on the
- disk sector permanently (so be careful, for heaven's sake!).
-
- Whew! That's quite a bit to swallow in one reading... My advice is
- to read this through, practice on a "scratch" diskette (one you can
- afford to destroy) and then re-read this chapter for the finer points
- of this powerful feature of the Ultra-Zap program.
-
- Display/Modify File Sectors
- ---------------------------
-
- This function is used to root around the program and data files that
- are on your diskettes. By using this feature, you can do such things
- as make easy corrections to data files and change ASCII messages in
- the programs. We do not condone people going through and wiping out
- an author's name or copyright notices. Such things are not only
- childish, they deprive the author and software company of the money
- and credit they deserve, and stifle creative folks from producing
- better software for us all. However, who can resist going into
- (5)
- COMMAND.COM and changing the sign-on message to "Ed Spread's Garbage
- DOS"? Oh well, it's a dilemma for the philosophers. Have fun...
-
- This function operates almost exactly like the Display/Modify Disk
- Sectors function with a few exceptions that pertain to disk files.
- Once you are familiar with that function, you should have no trouble
- with this one. One important difference we will note here is that in
- the search mode, the up arrow, down arrow, and "5" key have no
- function. The left arrow and right arrows still move backwards and
- forwards through the file sectors.
-
- You should also notice that all file sectors are displayed as
- physical (we call them logical) sectors. That means that even if you
- created a random access data file with a record length of 53 bytes,
- each sector in this function will still be displayed as 512 bytes.
-
- You will not be able to use this function on any files that contain
- the "HIDDEN" or "SYSTEM" attributes in their directory entry. Use
- Ultra-File to remove these attributes.
-
- Copy Disk Sectors
- -----------------
-
- This function is used to copy disk sectors from one part of a
- diskette to another, or between diskettes. Copying is not done with
- regard to the prior contents of the destination sectors, and any old
- data will be destroyed.
-
- Use of this function is pretty straightforward. If the specified
- drives for the source and destination diskettes are the same, the
- program will ask you if the source and destination sectors are on the
- same diskette, if they are not, you will be prompted to mount the
- appropriate diskette during the copying process. Sectors are copied
- consecutively, according to the progression order described in
- Appendix B of this manual.
-
- Fill Disk Sectors
- -----------------
-
- This function is used to fill one or more sectors entirely with a
- repeating single byte value. This byte value is selected using the
- Modify Sector Fill Byte function and has a default value of &HF6 (246
- decimal) upon program execution. This is the same as the default
- value used in formatting fresh sectors by the DOS FORMAT program.
-
- Again, this function is pretty straightforward. Sectors are filled
- consecutively according to the progression order described in
- Appendix B of this manual.
-
- Search For Bytes In Disk Sectors
- --------------------------------
-
- This function is used to quickly locate the position of a specified
- sequence of bytes or ASCII characters in disk sectors. The sequence
- of desired bytes or characters may be up to 15 long. You will first
- be asked if the sequence is numeric or ASCII. Once you have chosen,
- the program will ask you how many bytes or characters long the
- sequence is. Next, you will be prompted to enter the bytes or
- characters for the search sequence in order one at a time.
- (6)
- Next, you will enter the side, drive, track, and sector number for
- the start of the search, as well as the number of sectors to search
- through. Then the search begins, moving consecutively through
- sectors as described in Appendix B of this manual.
-
- If the sequence is found in a searched sector, a message will be
- displayed telling you the side, drive, track, and sector number
- containing the sequence as well as the offset address of the sequence
- within that sector. When each match is displayed, you have the
- ability to abort the search or continue from that point. If no
- matches are found, a message will be displayed telling you so at the
- end of the search.
-
- Search For Bytes In File Sectors
- --------------------------------
-
- This function is operates just like the above Search For Bytes In
- Disk Sectors except that file sectors are searched instead. Again
- you won't be able to use this function with files marked in their
- directory entries as "HIDDEN" or "SYSTEM" files. Use Ultra-File to
- remove these attributes before using this function.
-
- Modify Sector Fill Byte
- -----------------------
-
- This function allows you to change the default sector fill byte
- value. There are essentially two reasons to do this:
-
- A) For use with the Fill Disk Sectors function
-
- B) Before any disk sector or file sector is read from the disk in the
- Display/Modify functions, the memory buffers that will contain a
- copy of the sector data are first "flushed" with the sector fill
- byte value. If you ever run across a sector with a CRC-type error
- (either intentionally formatted or caused by diskette wear/tear)
- the Display/Modify functions will report the error. Normally, if
- you do not select the re-try function when a disk error occurs,
- you are returned to the main menu. In this instance, Ultra-Zap
- will allow you to go ahead and look at the contents of the sector.
- Some of the data may look funny due to effects of the error, but
- at least you'll be able to have a look at where the CRC error
- botched things up. We suggest you select a sector fill byte of
- zero for this type of work, since it will quickly show you where
- the read data ends.
-
- Modify Display Radix
- --------------------
-
- This function is used to present all displayed numeric values in a
- form you are most comfortable with. When zapping, some folks
- naturally hanker to hexadecimal (base sixteen); others are lost
- without good old decimal (base 10).
-
- Still, there are actually those around that cut their milkteeth on a
- Sperry-Univac and can't cut it without octal (base eight). Whatever
- you folks choose as your strokes, Ultra-Zap is well equipped to make
- life easy for you.
- (7)
- If you are a beginning zapper, We suggest the first thing you do upon
- executing Ultra-Zap is to choose this function and select the decimal
- radix. You Sperry-Univac people can do the same except choose octal.
- For those of you who learned to count with sixteen fingers, you won't
- need to do anything. Hexadecimal is the default radix for Ultra-Zap.
-
- Interrogating Disk Sectors
- --------------------------
-
- So, you just bought a protected diskette and you just can't wait to
- find out what makes that thing tick, eh? This function gets into the
- guts of a diskette's format and tells you all of its secrets. While
- it's great for just snooping around, it's best use will come by being
- used in concert with the special formatting abilities of the
- Ultra-Format program.
-
- This function will ask you to specify the drive, side, starting
- track, and ending track of the interrogation. It will then ask you
- the lowest and highest sector numbers to search for. If you've got
- a 40-track drive (like most of us), the maximum interrogation will be
- from track 0 to track 43 (throw in a couple extra tracks for those
- tricky buggers), searching for sectors 0 to 255 (all values decimal).
- Such an interrogation will take quite a bit of time, which is why we
- included the Toggle Menu Alert Tone function.
-
- You can also specify that the output be recorded on your printer to
- be used for later reference.
-
- Here's a few tips to get the most out of this function:
-
- A) Try to make a backup of the suspect diskette with DOS's DISKCOPY
- program. On the weirdly formatted tracks, the program will report
- a read error. Write down these track numbers.
-
- B) Place a write-protect tab on the suspect disk and interrogate all
- of the tracks that DISKCOPY threw a fit over. Search for sectors
- 0 to 255 (decimal).
-
- C) Most often, the protection scheme is to either format one or more
- sectors or tracks with sector sizes other than the standard 512
- bytes, or to either give one of the sectors a wild sector number
- like 214 or just not format a whole track of eight sectors. If
- you've got the same VisiCalc master I do, you'll find that sector
- 8 on track 39 is missing entirely.
-
- The interrogation function will tell you which sector numbers were
- found, their size in bytes, and if they were formatted with a CRC
- error (another not so fancy trick). Also notice that the
- interrogation process can be aborted by pressing the "C" key.
- (8) Toggle Menu Alert Tone
- ----------------------
-
- This function is used to sound the computer's speaker when a
- particularly time consuming function has been completed. Selecting
- this function toggles the alert tone on and off, and is most often
- used with the Interrogate Disk Sectors function, which returns
- directly to the main menu when finished.
-
- Display/Modify Disk Parameters
- ------------------------------
- Even though the IBM-PC uses a standard format for writing data on
- diskettes (40 tracks numbered 0 to 39 of 8 sectors each numbered 1 to
- 8 of 512 bytes each), it has the capability of reading and writing
- many other formats. To do so, you'll have to change certain bytes in
- a special table kept in the PC's memory called the Disk Parameter
- Table. This function displays the current value of these bytes and
- allows you to modify them. Note that not all of the values will be
- of any use to you.
-
- There are 11 bytes in the Disk Parameter Table:
-
- 1) Specify byte #1: the left "nybble" or single digit of this value
- when viewed in hex is the step rate time for the disk drive head.
- The right "nybble" is the disk head unload time. These values are
- best left alone.
-
- 2) Specify byte #2: Again, don't fool around with these values. The
- left "nybble" is the disk head load time, and the right nybble is
- the direct memory access mode select.
-
- 3) Wait time until motor is turned off. Not normally of use.
-
- 4) Bytes-per-sector value: AH-HAH! If you place a "0" in this value,
- The PC expects all sectors to be 128 bytes long. A "1" means a
- sector size of 256 bytes, a "2" means 512 bytes (this is the
- standard DOS value), and a "3" means 1024 bytes per sector.
-
- 5) Highest sector number on a track: This is used for formatting and
- tells DOS how many sectors there are on each track.
-
- 6) Gap length for diskette reads: this is what you fool around with
- if you keep getting CRC errors when you try to read a non-standard
- size sector. Normally, you can just leave this alone except when
- formatting with Ultra-Format.
-
- 7) Data length: This contains the number of bytes in a sector when
- the value in table byte #4 doesn't contain a 0, 1, 2, or 3.
-
- 8) Number of bytes in the gap between sectors: this is also only used
- when formatting special tracks.
-
- 9) Format fill byte: When formatting, this is the initialization byte
- that will be placed in all new sectors.
-
- 10) Head settle time: leave this alone.
-
- 11) Motor start time: don't fool with this either.
- (9) How To Display/Modify Non-Standard Sectors
- ------------------------------------------
-
- The best way we can think of to demonstrate how to use this program
- with protected diskettes is to give you an actual example "script".
-
- One fine day, a local marketing manager for a large software company
- was in our offices boasting his company's newest product. When we
- showed him the Ultra-Utilities, he challenged us that it "won't be
- able to touch this disk". We sat him down at our PC and booted up
- Ultra-Zap. This first thing we did was Interrogate track 1 of his
- diskette, searching for sectors 0 to 255. Like magic, Ultra-Zap told
- us that his diskette was formatted as five sectors, numbered 1, 2, 3,
- 4, and 5, and were 1024 bytes long each. Next, we went into the Disk
- Parameter table and changed byte #4 (bytes-per-sector value) to a
- value of 3 (meaning 1024 bytes per sector).
-
- Now, we choose the Display/Modify function to look at track 1, sector
- 1. The first thing this function does is attempt to read the
- FAT table on the diskette to determine if is single or double-sided.
- When you are working with protected diskettes that do not have a
- valid FAT table, or if you change the bytes-per-sector value, this
- function will report an error reading track 0, side 0, sector 2. It
- will then ask you how many sides are on the diskette (since it
- couldn't figure this out from the FAT). We answered 1 side, knowing
- that nearly all distribution software comes on single-sided
- diskettes. The Display/Modify function worked perfectly, as
- evidenced by the look of worry on our friend's face. "You're giving
- this thing away for free?", he asked us. We decided it would be best
- not to show him how we could make a backup of his disk with
- Ultra-Format.
- (10) Format A Standard Track
- -----------------------
-
- This function is used to lay down a fresh format pattern on a single
- track. It will destroy any previous data on that track. If you are
- attempting to revive sectors that were marked "damaged" by the DOS
- FORMAT program, you will have to also change the corresponding values
- in the File Allocation Table (FAT) after getting a successful format.
- Refer to the IBM DOS manual for details on the FAT. Our experience
- is that the work required is usually not worth the trouble of getting
- back a few sectors.
-
- When the sectors are formatted, they are initialized with whatever
- byte is in the "Fill byte" parameter in the Disk Parameter Table.
- Initially this is &HF6 (246 decimal). If you wish to change this,
- see the Display/Modify Disk Parameter Table chapter below.
-
- Re-Format A Standard Track Without Erasing Old Data
- ---------------------------------------------------
-
- This function is used whenever a disk starts to report read and write
- errors in normal use. It repairs the diskette by first reading the
- sector data into memory, writing a fresh format pattern on the
- diskette, and the writing back the old data into the freshly
- formatted sectors.
-
- You may specify how many times the program should attempt to re-read
- a sector that reports an error. Depending on the severity of damage
- to a sector, it may be necessary to re-read it 50 or more times
- before you get a good read. If after the specified number of
- re-reads the sector still cannot be read, the program will format a
- fresh sector in that location. Depending on the file, this may make
- it unusable. If it's a program file, probably so. However, if it's
- a data file or BASIC program stored in ASCII format, you should be
- able to go in with Ultra-Zap and patch things up. After reading the
- old data, you have the option to abort the fresh formatting and
- return to the main menu.
-
- Format A Non-Standard Track
- ---------------------------
-
- This function is used to create a copy-protected diskette track by
- placing a format pattern on the diskette that DOS is normally not
- able to read except under special circumstances. On the IBM-PC,
- there are four sector sizes we can format: 128 bytes, 256 bytes, 512
- bytes, and 1024 bytes. These sectors sizes can be read by DOS by
- placing the values 0, 1, 2, and 3 respectively into the
- byte-per-sector value in the Disk Parameter Table. Now let's discuss
- the difference between a logical and physical disk sector as referred
- to by Ultra-Format. The normal disk format is 8 sectors of 512 bytes
- each numbered 1 to 8. It is possible to give your non-standard
- sectors any numeric name you wish. That is, you could format a track
- with three physical sectors numbered 12, 20, and 235. This makes it
- difficult for someone to copy your disk. Another fancy trick is to
- format a standard track 40. Most disk drives are capable of
- reading and writing a few extra tracks than the standard 0 through
- 39. Most copy programs, and DISKCOPY, do not look for such a track.
-
- The "Highest Sector Number On Track" value in the Disk Parameter
- Table tells this function how many physical sectors you wish to
- (11)
- format on your non-standard track. It does not dictate what the
- highest logical sector number can be. For each physical sector, you
- will be asked to enter the logical sector name (0 to 255) and size
- value (0, 1, 2, or 3).
-
- Non-standard tracks are usually used to hold special codes that a
- program checks for when first executing. To do this, you'll need to
- incorporate a short disk sector reading assembly language subroutine
- into your program. Study the ROM-BIOS calls in the Technical
- Reference manual for disk I/O (interrupt 13H). If this is still over
- your head, drop us a line (registered users only) and we'll send you
- some ready-to-go sample routines for use in assembly, compiled BASIC,
- and regular BASIC programs.
-
- One more thing, when you format a non-standard track, you'll need
- to fiddle around with a couple of values in the Disk Paramter Table,
- specifically, bytes #6 and #8. Look at the default values for a
- standard 8 sector, 512 byte/sector format. If you wanted to format a
- track of 256 byte sectors, you might try doubling the standard
- value of these bytes. Our first issue of "The Zapper" newsletter
- deals with formatting non-standard tracks for copy-protection work.
- If you're not a registered user, all we can suggest is
- experimentation to come up with formats and Disk Parameter Table
- values that do not cause CRC errors.
-
- Display/Modify Disk Parameter Table
- -----------------------------------
-
- This function works exactly like that in the Ultra-Zap program,
- please refer to that chapter for instructions on how to use this
- function.
-
- Modify Display Radix
- --------------------
-
- This function also works just like the Ultra-Zap Modify Display Radix
- function. Please refer to that chapter for more information.
- (12) Display File's Directory Information
- ------------------------------------
-
- This function allows you to see everything about a file that is kept
- in DOS's directory of files. As with most of the functions in the
- Ultra-File program, this starts with a menu of all of the programs in
- the directory. Each filename is preceded with a number. After the
- filename, a single character (called the "attribute") tells you the
- characteristics of a file. These attribute codes are explained at
- the bottom of the display. If you have a double-sided diskette,
- choose the "M" key to look at the rest of the directory entries. If
- you have a single-sided diskette, all available file locations are
- displayed at the same time.
-
- To see the directory information on a file, just type in its
- corresponding number on the list. Interestingly enough, we have
- found that DOS 1.10 has some bugs in the way it sometimes reports a
- file's date, time, and size in bytes when you issue the DOS command
- DIR. This function displays their correct values.
-
- You'll also notice that on all file lists in Ultra-File, deleted
- files (those killed with BASIC's KILL or DOS's ERASE commands, for
- example) are shown with the first character of their filename as a
- question mark.
-
- Assign Or Remove System Status
- ------------------------------
-
- This function allows you to either remove or assign the "SYSTEM"
- attribute given to a file. Files given this attribute are not
- displayed with DOS's DIR command, cannot be accessed through DOS, and
- are not copied with DOS's COPY *.* command.
-
- Assign Or Remove Hidden Status
- ------------------------------
-
- This function allows you to either remove or assign the "HIDDEN"
- attribute given to a file. Functionally, the "HIDDEN" and "SYSTEM"
- attributes are alike to DOS. You'll notice though that system files
- like IBMBIO.COM and IBMDOS.COM are given both "HIDDEN" and "SYSTEM"
- attributes. Hidden files are used a lot by software companies to
- keep a program "secret". Backup diskettes made with DISKCOPY still
- include hidden and system programs, so it is not a good protection
- means on its own.
-
- Display List Of Sectors Allocated to File
- -----------------------------------------
-
- You'll notice that Ultra-Zap's Display/Modify File Sectors function
- never really tells you where on the diskette the logical file sectors
- are located. This function knows all, tells all, about the location
- of all sectors allocated to a file. Notice that with double-sided
- diskettes, sectors are allocated to a file two at a time (sectors 1
- and 2, 3 and 4, 5 and 6, 7 and 8 are considered groups on a
- double-sided diskette. We think a good name for this is a "lump".
- Just remember there is one sector per lump on a single-sided
- diskette and two sectors per lump on a double-sided diskette).
- (13) Build A File From Scratch
- -------------------------
-
- This function is used for creating a new file, and then taking
- specific "lumps" (see section above for definition of a "lump") and
- allocating them to this new file. It can also be used when the
- Attempt To Restore An Erased File function fails and you have used
- Ultra-Zap to find the lumps that belong to a file.
-
- THIS IS A POTENTIALLY DANGEROUS FUNCTION! Always work on a backup if
- possible! This function does not care if a lump was allocated to a
- different file and can generally screw things up royally if you don't
- know what you're doing. If you're trying to restore an accidentally
- erased file, always try the Attempt To Restore An Erase File function
- first.
-
- This function will ask you to enter in the sectors to allocate to the
- file. You must enter these sectors in order! Also, if you are
- working on a double-sided diskette, only enter in the first sector of
- each "lump" (that is, sectors 1, 3, 5, and 7). If you try to
- allocate both sectors 1 and 2 to a file, the disk will be thrown into
- an endless loop. You can allocate any sector for single-sided
- diskettes since each sector is considered one lump.
-
- Using this function, you can experiment with a variety of neat tricks
- including cross-threading files (two files having the same sectors
- allocated) and allocating an entire diskette to one file.
-
- Attempt To Restore An Erase File
- --------------------------------
-
- If you use this function IMMEDIATELY after accidentally erasing a
- single file, you stand a near 100% chance of resurrection with this
- function. When a file is restored with this function or the Build
- File From Scratch function (deleted file), the first character of the
- filename will be changed to the letter "Z". You can use DOS's RENAME
- command to rename it to its original filename.
-
- If you killed multiple files (ERASE *.TXT type commands are notorious
- for this), this function will probably not work. Always use a backup
- disk (made with DISKCOPY) before allowing this function to change the
- directory info.
-
- Produce A Map Of Diskette
- -------------------------
-
- This function allows you to examine an entire diskette, sector by
- sector, in the form of a unique road map. Since the output is
- self-explanatory, we will not discuss it here. Suffice it to say
- that you'll wish you took the time to make one of these for your most
- valued diskettes should you ever experience the hand-spasm that
- causes one to type ERASE *.* accidentally. The ORP code means that
- a sector is an "orphan", that is, it's been marked as allocated in
- the File Allocation Table (FAT) but doesn't belong to any file in the
- directory. Running the DOS program CHKDSK will usually fix any
- orphan lumps.
- (14) Selectively Purge Files
- -----------------------
-
- You'll really appreciate this function on those times you want to
- kill about 20 .TXT-type programs but want to keep one. In such a
- case ERASE .TXT will wipe them all out. This function allows you to
- go through and choose one by one the files you wish to "purge" from
- the diskette. Everytime you enter a file's number from the file
- list, that file's number will begin to blink. If you make a mistake,
- just choose the "Q" function to cancel the purge. If you have a
- double-sided diskette, choose the "M" function to look at the rest of
- the files in the directory. When you've "marked" all of the files to
- be purged, just choose the "P" function to start the hand of diskette
- doom (ouch!).
-
-
-
- rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr